package com.gears_software.bbnetwork.datas.finders;

import java.util.List;

import com.gears_software.bbnetwork.datas.models.AchieveBankIconUrls;
import com.gears_software.bbnetwork.datas.models.BaseJsonToModel;
import com.gears_software.bbnetwork.datas.models.CertificationModel;
import com.gears_software.bbnetwork.datas.models.CurrentBankInfoModel;
import com.gears_software.bbnetwork.datas.models.DrawHistoryModel;
import com.gears_software.bbnetwork.datas.models.MainModel;
import com.gears_software.bbnetwork.datas.models.RecommendRewardzModel;
import com.gears_software.bbnetwork.datas.models.ReportInfoModel;
import com.gears_software.bbnetwork.datas.models.ResultModel;
import com.gears_software.bbnetwork.datas.models.TixianCashModel;
import com.gears_software.bbnetwork.datas.models.UserModel;
import com.gears_software.common.utils.versionupdate.VersionModel;

/**
 * 接口
 * @author zhouyong
 *
 */
public interface IBBNetworkFinder {
	
	/**
	 * 发送验证码
	 * @param mobilePhone 手机号
	 * @param UUID 手机IMEI号
	 * @return
	 */
	public BaseJsonToModel getRegistCode(String mobilePhone,String UUID);
	
	/**
	 * 注册及登录
	 * @param mobilePhone 手机号
	 * @param uniDeviceCode 手机IMEI号
	 * @param verifyCode 验证码
	 * @return
	 */
	public ResultModel<UserModel>  getVerifyRegistCode(String mobilePhone,String uniDeviceCode,String verifyCode);
	
	/**
	 * 直接登录
	 * @param mobilePhone 手机号
	 * @param uniDeviceCode  手机IMEI号
	 * @return
	 */
	public ResultModel<UserModel> getLogin(String mobilePhone,String uniDeviceCode);
	
	/**
	 * 提交报单
	 * @param userId 用户id
	 * @param projectName 报单内容
	 * @return
	 */
	public ResultModel<String> getApply(String userId,String projectName);
	
	/**
	 * 获取报单列表
	 * @param userId
	 * String pageNum 第几页
	 * @return
	 */
	public ResultModel<List<ReportInfoModel>> getBaodanList(String userId,String pageNum);
	
	/**
	 * 第一次密码
	 * @param userId 用户id
	 * @param cashPassword 密码
	 * @return
	 */
	public ResultModel<String> getSetCashPws(String userId,String cashPassword);
	
	/**
	 * 修改密码
	 * @param userId 用户id
	 * @param oldCashPassword 旧密码
	 * @param newCashPassword 新密码
	 * @return 
	 */
	public ResultModel<String> getUpdateCashPws(String userId,String oldCashPassword,String newCashPassword);
	
	/**
	 * 可提现金额
	 * @param userId 用户id
	 * @return
	 */
	public ResultModel<TixianCashModel> getTixianInfo(String userId);
	
	/**
	 * 获取银行列表
	 * @param userId 用户id
	 * @return
	 */
	public ResultModel<List<AchieveBankIconUrls>> getYinhangList(String userId);
	
	/**
	 * 绑定银行卡
	 * @param userId 用户id
	 * @param cardNo 银行卡号
	 * @param bankName 银行名称
	 * @param depositBankName 开户行
	 * @return
	 */
	public ResultModel<String> getBindCard(String userId,String cardNo,String bankName,String depositBankName);
	
	/**
	 * 获取银行卡信息
	 * @param userId 用户id
	 * @return
	 */
	public ResultModel<List<CurrentBankInfoModel>> getCardInfo(String userId);
	
	/**
	 * 获取认证信息
	 * @param userId
	 * @return
	 */
	public ResultModel<CertificationModel> getRealNameAuth(String userId);
	
	/**
	 * 实名认证
	 * @param userId 用户id
	 * @param realName 姓名
	 * @param company 公司名称
	 * @param IDCardNo 身份证号
	 * @return
	 */
	public ResultModel<String> getAudit(String userId,String realName,String company,String IDCardNo);
	
	/**
	 * 银行卡解绑
	 * @param userId 用户id
	 * @return
	 */
	public ResultModel<String> getDeleteCard(String userId);
	
	/**
	 * 提现
	 * @param userId 用户id
	 * @param drawAmount 提现金额
	 * @param cashPassword 提现密码
	 * @return
	 */
	public ResultModel<String> getTixian(String userId,String drawAmount,String cashPassword);
	
	/**
	 * 删除文件接口
	 * @param userId 用户id
	 * @param originalFileInformationId 源文件id
	 * @return
	 */
	public ResultModel<String> getDeleteFile(String userId,String originalFileInformationId);
	
	/**
	 * 提现历史
	 * @param userId
	 * @param pageNum 当前第几页
	 * @return
	 */
	public ResultModel<List<DrawHistoryModel>> getTixianList(String userId,String pageNum);
	
	/**
	 * 获取首页数据
	 * @return
	 */
	public ResultModel<MainModel> getHomeData();
	
	/**
	 * 获取推荐码接口
	 * @param userId 用户id
	 * @return
	 */
	public ResultModel<String> getRecommendCode(String userId);
	
	/**
	 * 获取推荐奖励数据
	 * @param userId 用户id
	 * @param pageNum 当前页
	 * @return
	 */
	public ResultModel<List<RecommendRewardzModel>> getRecommendRewardzList(String userId,String pageNum);
	
	/**
	 * 提交推荐码接口
	 * @param userId
	 * @param recommendCode
	 * @return
	 */
	public ResultModel<String> getSubmitCode(String userId,String recommendCode);
	
	/**
	 * 跳过推荐码
	 * @param userId
	 * @return
	 */
	public ResultModel<String> getSkipCode(String userId);
	
	/**
	 * 获取版本信息
	 * @return
	 */
	public ResultModel<VersionModel> getVersion();
	
}
